home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / ess1.zip / K_TBL.ASM < prev    next >
Assembly Source File  |  1993-04-29  |  33KB  |  616 lines

  1. ;--------------------------------------------
  2. ;       Tastaturbelegungstabellen für
  3. ;          den Tastaturtreiber KBD.
  4. ;
  5. ; Übersetzung mit
  6. ;   MASM    k.tbl;
  7. ;   LINK    k;
  8. ;   EXE2BIN k.exe kbd.kbd
  9. ;--------------------------------------------
  10. .model small
  11. .286
  12. .code
  13. ;--------------------------------------------
  14. ;  ID_Nummern der Tabellenköpfe
  15. ID_End        equ  0                        ; Ende des Tabellenbereichs
  16. ID_ScanX      equ  1                        ; Scancode-Umwandlungstabelle
  17. ID_Meaning    equ  2                        ; Tastenbelegungstabelle
  18. ID_CapsConv   equ  3                        ; CapsLock Umwandlungstabelle
  19. ID_NumConv    equ  4                        ; NumLock Umwandlungstabelle
  20. ID_Accent     equ  5                        ; Akzent-Nachfolgertabelle
  21. ID_ExternFunc equ  6                        ; externe Funktion
  22. ID_Padding    equ  0ffh                     ; Füll-Block zur nächsten Segmentgrenze
  23. ;--------------------------------------------
  24. ;comment %
  25. ScanTbl_ID    db   ID_ScanX
  26. ScanTbl_Len   dw   (Offset ScanTbl_End - Offset ScanTbl_ID)
  27.               db   015h,015h
  28.               db   02ch              ; y -> z
  29.               db   02ch,02ch
  30.               db   015h              ; z -> y
  31.               db   0
  32. ScanTbl_End:
  33. ;endcomment %
  34. ;--------------------------------------------
  35. ;comment %
  36. AccTbl1_ID    db   ID_Accent
  37. AccTbl1_Len   dw   (Offset AccTbl1_End - Offset AccTbl1_ID)
  38.               dw   00d27h
  39.               dw   12
  40.               dw   00d27h,00d27h            ; Akzent selbst
  41.               dw   03920h,00d27h            ; Space -> Akzent selbst
  42.               dw   01e61h,01ea0h            ; a -> á
  43.               dw   01265h,01282h            ; e -> é
  44.               dw   01769h,017a1h            ; i -> í
  45.               dw   0186fh,018a2h            ; o -> ó
  46.               dw   01675h,016a3h            ; u -> ú
  47.               dw   02e63h,02e87h            ; c -> ç
  48.               dw   0316eh,031a4h            ; n -> ñ
  49.               dw   01245h,01290h            ; E -> É
  50.               dw   02e43h,02e80h            ; C -> Ç
  51.               dw   0314eh,031a5h            ; N -> Ñ
  52. AccTbl1_End:
  53. ;endcomment %
  54. ;--------------------------------------------
  55. ;comment %
  56. AccTbl2_ID    db   ID_Accent
  57. AccTbl2_Len   dw   (Offset AccTbl2_End - Offset AccTbl2_ID)
  58.               dw   00d60h
  59.               dw   7
  60.               dw   00d60h,00d60h            ; Akzent selbst
  61.               dw   03920h,00d60h            ; Space -> Akzent selbst
  62.               dw   01e61h,01e85h            ; a -> à
  63.               dw   01265h,0128ah            ; e -> è
  64.               dw   01769h,0178dh            ; i -> ì
  65.               dw   0186fh,01895h            ; o -> ò
  66.               dw   01675h,01697h            ; u -> ù
  67. AccTbl2_End:
  68. ;endcomment %
  69. ;--------------------------------------------
  70. NumTbl_ID     db   ID_NumConv
  71. NumTbl_Len    dw   (Offset NumTbl_End - Offset NumTbl_ID)
  72.               dw   0
  73.               dw   2*(11)
  74.               dw   04700h,04737h            ; 7 <- Home
  75.               dw   04800h,04838h            ; 8 <- Up
  76.               dw   04900h,04939h            ; 9 <- PgUp
  77.               dw   04b00h,04b34h            ; 4 <- Left
  78.               dw   04c00h,04c35h            ; 5 <- undefined
  79.               dw   04d00h,04d36h            ; 6 <- Right
  80.               dw   04f00h,04f31h            ; 1 <- End
  81.               dw   05000h,05032h            ; 2 <- Down
  82.               dw   05100h,05133h            ; 3 <- PgDn
  83.               dw   05200h,05230h            ; 0 <- Ins
  84.               dw   05300h,0532eh            ; . <- Del
  85.               dw   04737h,04700h            ; Home  <- 7
  86.               dw   04838h,04800h            ; Up    <- 8
  87.               dw   04939h,04900h            ; PgUp  <- 9
  88.               dw   04b34h,04b00h            ; Left  <- 4
  89.               dw   04c35h,04c00h            ; undef <- 5
  90.               dw   04d36h,04d00h            ; Right <- 6
  91.               dw   04f31h,04f00h            ; End   <- 1
  92.               dw   05032h,05000h            ; Down  <- 2
  93.               dw   05133h,05100h            ; PgDn  <- 3
  94.               dw   05230h,05200h            ; Ins   <- 0
  95.               dw   0532eh,05300h            ; Del   <- .
  96. NumTbl_End:
  97. ;--------------------------------------------
  98. CapsTbl_ID    db   ID_CapsConv
  99. CapsTbl_Len   dw   (Offset CapsTbl_End - Offset CapsTbl_ID)
  100.               dw   0
  101.               dw   2*(26+3)
  102.               dw   01e61h,01e61h and not 20h; a
  103.               dw   03062h,03062h and not 20h; b
  104.               dw   02e63h,02e63h and not 20h; c
  105.               dw   02064h,02064h and not 20h; d
  106.               dw   01265h,01265h and not 20h; e
  107.               dw   02166h,02166h and not 20h; f
  108.               dw   02267h,02267h and not 20h; g
  109.               dw   02368h,02368h and not 20h; h
  110.               dw   01769h,01769h and not 20h; i
  111.               dw   0246ah,0246ah and not 20h; j
  112.               dw   0256bh,0256bh and not 20h; k
  113.               dw   0266ch,0266ch and not 20h; l
  114.               dw   0326dh,0326dh and not 20h; m
  115.               dw   0316eh,0316eh and not 20h; n
  116.               dw   0186fh,0186fh and not 20h; o
  117.               dw   01970h,01970h and not 20h; p
  118.               dw   01071h,01071h and not 20h; q
  119.               dw   01372h,01372h and not 20h; r
  120.               dw   01f73h,01f73h and not 20h; s
  121.               dw   01474h,01474h and not 20h; t
  122.               dw   01675h,01675h and not 20h; u
  123.               dw   02f76h,02f76h and not 20h; v
  124.               dw   01177h,01177h and not 20h; w
  125.               dw   02d78h,02d78h and not 20h; x
  126.               dw   01579h,01579h and not 20h; y
  127.               dw   02c7ah,02c7ah and not 20h; z
  128.               dw   02884h,0288eh            ; ä
  129.               dw   02794h,02799h            ; ö
  130.               dw   01a81h,01a9ah            ; ü
  131.               dw   01e61h and not 20h,01e61h; a
  132.               dw   03062h and not 20h,03062h; b
  133.               dw   02e63h and not 20h,02e63h; c
  134.               dw   02064h and not 20h,02064h; d
  135.               dw   01265h and not 20h,01265h; e
  136.               dw   02166h and not 20h,02166h; f
  137.               dw   02267h and not 20h,02267h; g
  138.               dw   02368h and not 20h,02368h; h
  139.               dw   01769h and not 20h,01769h; i
  140.               dw   0246ah and not 20h,0246ah; j
  141.               dw   0256bh and not 20h,0256bh; k
  142.               dw   0266ch and not 20h,0266ch; l
  143.               dw   0326dh and not 20h,0326dh; m
  144.               dw   0316eh and not 20h,0316eh; n
  145.               dw   0186fh and not 20h,0186fh; o
  146.               dw   01970h and not 20h,01970h; p
  147.               dw   01071h and not 20h,01071h; q
  148.               dw   01372h and not 20h,01372h; r
  149.               dw   01f73h and not 20h,01f73h; s
  150.               dw   01474h and not 20h,01474h; t
  151.               dw   01675h and not 20h,01675h; u
  152.               dw   02f76h and not 20h,02f76h; v
  153.               dw   01177h and not 20h,01177h; w
  154.               dw   02d78h and not 20h,02d78h; x
  155.               dw   01579h and not 20h,01579h; y
  156.               dw   02c7ah and not 20h,02c7ah; z
  157.               dw   0288eh,02884h            ; ä
  158.               dw   02799h,02794h            ; ö
  159.               dw   01a9ah,01a81h            ; ü
  160. CapsTbl_End:
  161. ;--------------------------------------------
  162. TblCAf_ID     db   ID_Meaning
  163. TblCAf_Len    dw   (Offset TblCAf_End - Offset TblCAf_ID)
  164. MCAf_StateMax dw   not 0000011111001111b    ; Alt, Ctrl, Shift dürfen gedrückt sein
  165. MCAf_StateMin dw   0000010000001100b        ; je eine Shift-, Alt- und Ctrl-Taste muß gedrückt sein
  166. MCAf_funcFlag db   01h
  167. MCAf_Ser1     db   46h,46h                  ; erster und letzter Scancode in Serie
  168.               dw   00c00h                   ; Shift-Ctrl-Alt-ScrollLock: Nottaste
  169. MCAf_Ser2     db   4ah,4ah                  ; erster und letzter Scancode in Serie
  170.               dw   0b00h                    ; Shift-Ctrl-Alt-Gr_Minus: toggle Speed
  171. MCAf_Ser3     db   53h,54h or 80h           ; erster und letzter Scancode in Serie
  172.               dw   0000h                    ; Shift-Ctrl-Alt-Del: jump to old Dr